System szablonów Pytigona bazuje na szablonach django:
Time: {{time_str}}
https://docs.djangoproject.com/en/2.2/ref/templates/language/
Szablon pytigona
Zamiarem autora było poprawić czytelość szablonów django nie rezygnując ze 100% kompatybilności z nimi. Najbardziej znaczącą zmianą w stosunku do Django było wprowadzenie wcięć. Zasady są następujące:
jeżeli pierwszy nie będący spacją znak w linii nie zaczyna się od litery i znaku '%', linia tekstu nie jest przetwarzana. "
jeżeli pierwszy znak w linii nie będący spacją jest '.' - znak jest pomijany, reszta nie jest przetwarzana.
".abc" => "abc"
"h1" => "
""" h1 div p """ => "
"p class=test" => "
" "p class=test,,,style=padding:10...Hello world!" => "Hello world!
"jeżeli pierwszym znakiem w linii nie będącym spacją jest '%':
jeżeli kolejnym jest też '%' - oznacza to początek bloku django, jeżeli linia kończy się znakiem ':' automatycznie dodawany jest element zamykający blok zgodnie z poziomem wcięć
"%% test" => "{% block test %}" "%% test:" => "{% block test %}{% endblock test %}"
jeżeli linie rozpoczyna pojedynczy znak '%' traktowany jest jako tag Django. Jeżei linia kończy się znakiem ':' aytomatycznie jest dodawany tag zamykający. """ [for row in table] """ => "{% for row in table %}
jeżeli linia zanczyna się od sekwencji "===>" kolejne linie przekształcane są bez zmian aż skończy się fragment wyznaczony przez wcięcia:
""" style type=text/css===> .table th { background-color: #CEE; }
body {
margin: 5px;
font-size: 12px;
}
body """ => """
""" - jeżeli linia kończy się sekwencją '>>>', tekst przekszta?cany jest bez zmian a? do momentu pojawienia si? sekwencji '|| |' """ style type=text/css>>> .table th { background-color: #CEE; } body { margin: 5px; font-size: 12px; }|| | body """ => """ """ base_pdf base_mail base_print base0 base_base base theme/desktop_base theme/desktop theme/tablet_base theme/tablet theme/smartfon_base theme/smartfon theme/schweb_base theme/schweb default_template(desktop, tablet, smartfon, schweb) only_content_base only_content only_table_base only_table theme_base theme forms/form forms/tree forms/user_tab forms/plugin_form schsys/app/index_base schsys/app/index schsys/app/index_base_all schsys/app/index_all schsys/app/login_base schsys/app/login